package com.esunny.resourcevisualization.manage;

import com.esunny.resourcevisualization.dao.EnumItemDao;
import com.esunny.resourcevisualization.domain.entity.EnumItem;
import com.esunny.resourcevisualization.domain.response.ReturnStructure;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @version 1.0.0.0
 * @ClassName EnumItemManage
 * @Description 枚举项数据处理
 * @Author baochencong
 * @Date 2020/9/26 13:10
 */
@Component
public class EnumItemManage {

    @Resource
    private EnumItemDao enumItemDao;

    /**
     * 添加枚举项
     *
     * @param enumItemList 枚举项列表
     * @return 添加失败的枚举项列表
     */
    public List<EnumItem> addEnumItem(List<EnumItem> enumItemList) {
        List<EnumItem> failedAddEnumItemList = new ArrayList<>();
        for (EnumItem enumitem : enumItemList) {
            boolean success = enumItemDao.addEnumItem(enumitem);
            if (!success) {
                failedAddEnumItemList.add(enumitem);
            }
        }
        return failedAddEnumItemList;
    }

    /**
     * 通过枚举项id获取枚举项
     *
     * @param itemId 枚举项id
     * @return 枚举项
     */
    public EnumItem getEnumItemByItemId(int itemId) {
        return enumItemDao.getEnumItemByItemId(itemId);
    }

    /**
     * 通过枚举项id删除枚举项
     *
     * @param itemId 枚举项id
     * @return 删除枚举项结果信息
     */
    public ReturnStructure deleteEnumItemByItemId(int itemId) {
        return enumItemDao.deleteEnumItemByItemId(itemId) ? ReturnStructure.SUCCESS("删除枚举项信息成功", null) : ReturnStructure.ERROR("删除枚举项信息失败", null);
    }

    /**
     * 通过枚举组英文名获取组下所有枚举项
     *
     * @param groupName 枚举组英文名
     * @return 枚举项列表
     */
    public List<EnumItem> getEnumItemListByGroupName(String groupName) {
        return enumItemDao.getEnumItemListByGroupName(groupName);
    }
}
